package com.gopay.common.security.cacert.dao;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import com.gopay.common.base.dao.BaseReadDAO;
import com.gopay.common.domain.user.CauthCaCert;

/**
 * 控制台硬证书 @UkConsoleCaCertQueryDao.java
 * @author zhuliang  @2017年10月10日
 */
public interface UkConsoleCaCertQueryDao extends BaseReadDAO<CauthCaCert, Serializable> {

    /**
     * 根据客户id查询客户证书数据.
     * @param operId 操作员Id
     * @return 证书信息
     */
	CauthCaCert getCauthCaCertByOperId(String operId);

    /**
     * 获取过期的数字证书
     * @return 证书信息集合
     */
     List<CauthCaCert> getLimitCauthCaCert();

    /**
     * 根据证书主键获取证书信息
     * @param certId 证书表主键
     * @return  证书信息
     */
	 CauthCaCert getCauthCaCertById(Serializable certId);
	
	/**
	 * 根据operId和证书状态查询证书列表
	 * @param operId 操作员Id
	 * @param stat  证书状态
	 * @return 证书信息集合
	 */
	 List<CauthCaCert> getCauthCaCertListByOperId(String operId, String stat);

	/**
	 * 获取需要被更新的证书列表
	 * @param operId 操作员Id
     * @return  证书信息集合
     */
	 List<CauthCaCert> getNeedUpdateCauthCaCert(String operId);

	/**
	 * 根据操作员ID和序列号获取证书
	 * @param operId 操作员Id
	 * @param sn 序列号
	 * @return  证书信息
	 */
	 CauthCaCert getByUserIdAndSN(String operId, String sn);

	/**
	 * 查询证书状态正常，但在当前日期已过期的证书
	 * *@param operId 操作员Id
	 * @return  证书信息
	 */
	CauthCaCert getExceedByUserId(String operId);

	/**
	 * 查询证书状态正常，到期前30天的证书
	 * *@param operId 操作员Id
	 * @return  证书信息
	 */
	Map<String,Object> isUkCertExpireTip(String operId);


}
